diff options
| author | charles forsyth <charles.forsyth@gmail.com> | 2015-06-13 16:34:09 +0100 |
|---|---|---|
| committer | charles forsyth <charles.forsyth@gmail.com> | 2015-06-13 16:34:09 +0100 |
| commit | 62d7827bc358c000db9ff48fe61bd28ac352a884 (patch) | |
| tree | 3369436e1f4ccfabd4bd5a58632d26934b868688 /appl/charon | |
| parent | 15cdcc9295cbd45a03f77559b9de402033858a41 (diff) | |
mkfiles/mkfile-Linux-386
Diffstat (limited to 'appl/charon')
| -rw-r--r-- | appl/charon/chutils.b | 6 | ||||
| -rw-r--r-- | appl/charon/chutils.m | 3 | ||||
| -rw-r--r-- | appl/charon/common.m | 1 | ||||
| -rw-r--r-- | appl/charon/cookiesrv.b | 2 | ||||
| -rw-r--r-- | appl/charon/ftp.b | 15 | ||||
| -rw-r--r-- | appl/charon/http.b | 11 |
6 files changed, 23 insertions, 15 deletions
diff --git a/appl/charon/chutils.b b/appl/charon/chutils.b index 8d8bdf33..3f507108 100644 --- a/appl/charon/chutils.b +++ b/appl/charon/chutils.b @@ -201,6 +201,10 @@ init(ch: Charon, c: CharonUtils, argl: list of string, evc: chan of ref E->Event return Url->PATH; U->init(); + DI = load Dial Dial->PATH; + if(DI == nil) + return Dial->PATH; + T = load StringIntTab StringIntTab->PATH; if(T == nil) return StringIntTab->PATH; @@ -801,7 +805,7 @@ Netconn.new(id: int) : ref Netconn "", # host 0, # port "", # scheme - sys->Connection(nil, nil, ""), # conn + ref Dial->Connection(nil, nil, ""), # conn nil, # ssl context 0, # undetermined ssl version NCfree, # state diff --git a/appl/charon/chutils.m b/appl/charon/chutils.m index 15c3308f..8cff7163 100644 --- a/appl/charon/chutils.m +++ b/appl/charon/chutils.m @@ -13,6 +13,7 @@ CharonUtils: module J: Script; CH: Charon; CK: Cookiesrv; + DI: Dial; # HTTP methods HGet, HPost : con iota; @@ -234,7 +235,7 @@ CharonUtils: module host: string; # host name port: int; # port number scheme: string; # Url scheme ("http", "file", etc.) - conn: Sys->Connection; # fds, etc. + conn: ref Dial->Connection; # fds, etc. sslx: ref SSL3->Context; # ssl connection vers: int; # ssl version state: int; # NCfree, etc. diff --git a/appl/charon/common.m b/appl/charon/common.m index 714d6d6e..56a61782 100644 --- a/appl/charon/common.m +++ b/appl/charon/common.m @@ -8,6 +8,7 @@ include "keyring.m"; include "asn1.m"; include "pkcs.m"; include "x509.m"; +include "dial.m"; include "sslsession.m"; include "ssl3.m"; include "convcs.m"; diff --git a/appl/charon/cookiesrv.b b/appl/charon/cookiesrv.b index f50c1ce9..1670e63c 100644 --- a/appl/charon/cookiesrv.b +++ b/appl/charon/cookiesrv.b @@ -433,7 +433,7 @@ save() ix := getallcookies(doms, cka, 0); mergesort(cka, nil, SORT_TOUCHED); - for (i := 0; i < ncookies; i++) { + for (i := 0; i < ix; i++) { ck := cka[i]; if (ck.expire > now) sys->fprint(fd, "%s\n", cookie2str(cka[i])); diff --git a/appl/charon/ftp.b b/appl/charon/ftp.b index 4f564a71..20834235 100644 --- a/appl/charon/ftp.b +++ b/appl/charon/ftp.b @@ -8,6 +8,7 @@ sys: Sys; U: Url; Parsedurl: import U; S: String; +DI: Dial; CU: CharonUtils; Netconn, ByteSource, Header, config: import CU; @@ -27,6 +28,7 @@ init(c: CharonUtils) U = load Url Url->PATH; if (U != nil) U->init(); + DI = CU->DI; dbg = int (CU->config).dbg['n']; } @@ -35,14 +37,13 @@ connect(nc: ref Netconn, bs: ref ByteSource) port := nc.port; if(port == 0) port = FTPPORT; - addr := "tcp!" + nc.host + "!" + string port; + addr := DI->netmkaddr(nc.host, "net", string port); if(dbg) sys->print("ftp %d: dialing %s\n", nc.id, addr); err := ""; ctlfd : ref sys->FD = nil; - rv : int; - (rv, nc.conn) = sys->dial(addr, nil); - if(rv < 0) { + nc.conn = DI->dial(addr, nil); + if(nc.conn == nil) { syserr := sys->sprint("%r"); if(S->prefix("cs: dialup", syserr)) err = syserr[4:]; @@ -113,11 +114,11 @@ dialdata(nc: ref Netconn, ctlfd: ref sys->FD) : string if(paddr == "") return "passive mode protocol botch: " + msg; # dial data port - daddr := "tcp!" + paddr + "!" + pport; + daddr := DI->netmkaddr(paddr, "net", pport); if(dbg) sys->print("ftp %d: dialing data %s", nc.id, daddr); - (ok, dnet) := sys->dial(daddr, nil); - if(ok < 0) + dnet := DI->dial(daddr, nil); + if(dnet == nil) return "data dial error"; nc.conn.dfd = dnet.dfd; return ""; diff --git a/appl/charon/http.b b/appl/charon/http.b index d1208091..05d2396c 100644 --- a/appl/charon/http.b +++ b/appl/charon/http.b @@ -52,6 +52,7 @@ U: Url; S: String; C: Ctype; T: StringIntTab; +DI: Dial; CU: CharonUtils; Netconn, ByteSource, Header, config, Nameval : import CU; @@ -251,6 +252,7 @@ init(cu: CharonUtils) U = load Url Url->PATH; if (U != nil) U->init(); + DI = cu->DI; C = cu->C; T = load StringIntTab StringIntTab->PATH; # D = load Date CU->loadpath(Date->PATH); @@ -280,13 +282,12 @@ connect(nc: ref Netconn, bs: ref ByteSource) if(config.httpproxy.port != "") dialport = config.httpproxy.port; } - addr := "tcp!" + dialhost + "!" + dialport; + addr := DI->netmkaddr(dialhost, "net", dialport); err := ""; if(dbg) sys->print("http %d: dialing %s\n", nc.id, addr); - rv: int; - (rv, nc.conn) = sys->dial(addr, nil); - if(rv < 0) { + nc.conn = DI->dial(addr, nil); + if(nc.conn == nil) { syserr := sys->sprint("%r"); if(S->prefix("cs: dialup", syserr)) err = syserr[4:]; @@ -352,7 +353,7 @@ vers = 3; } } -constate(msg: string, conn: Sys->Connection) +constate(msg: string, conn: ref Dial->Connection) { fd := conn.dfd; fdfd := -1; |
