Rev 10 | Rev 7676 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 10 | Rev 3840 | ||
---|---|---|---|
Line 110... | Line 110... | ||
110 | snprintf(buf,sizeof(buf),"\ |
110 | snprintf(buf,sizeof(buf),"\ |
111 | mkdir -p %s\n\ |
111 | mkdir -p %s\n\ |
112 | openssl s_client -connect %s:%d -quiet 2>/dev/null >%s <<@\n\ |
112 | openssl s_client -connect %s:%d -quiet 2>/dev/null >%s <<@\n\ |
113 | %s\n\ |
113 | %s\n\ |
114 | @\n", tmpdir,host,port,tfname,tbuf); |
114 | @\n", tmpdir,host,port,tfname,tbuf); |
115 | system |
115 | if (system(buf)) |
- | 116 | errorquit("system() error"); |
|
116 | return open(tfname,O_RDONLY); |
117 | return open(tfname,O_RDONLY); |
117 | } |
118 | } |
118 | 119 | ||
119 | int main(int argc, char *argv[]) |
120 | int main(int argc, char *argv[]) |
120 | { |
121 | { |
Line 139... | Line 140... | ||
139 | p2=getenv("w_webget_port"); |
140 | p2=getenv("w_webget_port"); |
140 | if(p1==NULL || p2==NULL) errorquit("incomplete_request"); |
141 | if(p1==NULL || p2==NULL) errorquit("incomplete_request"); |
141 | port=atoi(p2); |
142 | port=atoi(p2); |
142 | soc=net_connect(p1); if(soc==-1) return 1; |
143 | soc=net_connect(p1); if(soc==-1) return 1; |
143 | c=' '; for(p3=parm; *p3; p3++) { |
144 | c=' '; for(p3=parm; *p3; p3++) { |
144 | if(*p3=='\n' && c!='\r') write(soc,"\r",1); |
145 | if(*p3=='\n' && c!='\r') (void)write(soc,"\r",1); |
145 | write(soc,p3,1); c=*p3; |
146 | (void)write(soc,p3,1); c=*p3; |
146 | } |
147 | } |
147 | write(soc,"\r\n\r\n",4); |
148 | (void)write(soc,"\r\n\r\n",4); |
148 | pt=getenv("w_module"); |
149 | pt=getenv("w_module"); |
149 | if(pt==NULL || *pt==0 || strncmp(pt,"adm/",4)==0 ) { /* File to post? */ |
150 | if(pt==NULL || *pt==0 || strncmp(pt,"adm/",4)==0 ) { /* File to post? */ |
150 | pt=getenv("w_webget_post"); if(pt!=NULL && *pt!=0) { |
151 | pt=getenv("w_webget_post"); if(pt!=NULL && *pt!=0) { |
151 | FILE *f; |
152 | FILE *f; |
152 | char buf[4096]; |
153 | char buf[4096]; |
153 | size_t l; |
154 | size_t l; |
154 | f=fopen(pt,"r"); if(f!=NULL) { |
155 | f=fopen(pt,"r"); if(f!=NULL) { |
155 | do { |
156 | do { |
156 | l=fread(buf,1,sizeof(buf),f); |
157 | l=fread(buf,1,sizeof(buf),f); |
157 | if(l>0 && l<=sizeof(buf)) write(soc,buf,l); |
158 | if(l>0 && l<=sizeof(buf)) (void)write(soc,buf,l); |
158 | } while(l==sizeof(buf)); |
159 | } while(l==sizeof(buf)); |
159 | fclose(f); |
160 | fclose(f); |
160 | } |
161 | } |
161 | } |
162 | } |
162 | } |
163 | } |
Line 187... | Line 188... | ||
187 | else {*p4++=0; port=atoi(p4);} |
188 | else {*p4++=0; port=atoi(p4);} |
188 | if(https) { |
189 | if(https) { |
189 | soc=gethttps(p1); goto read; |
190 | soc=gethttps(p1); goto read; |
190 | } |
191 | } |
191 | soc=net_connect(p1); |
192 | soc=net_connect(p1); |
192 | write(soc,tbuf,strlen(tbuf)); |
193 | (void)write(soc,tbuf,strlen(tbuf)); |
193 | /* header */ |
194 | /* header */ |
194 | read: if(soc==-1) return 1; |
195 | read: if(soc==-1) return 1; |
195 | c=-1; |
196 | c=-1; |
196 | while(read(soc,pbuf,1)>0) { |
197 | while(read(soc,pbuf,1)>0) { |
197 | if(pbuf[0]=='\r') continue; |
198 | if(pbuf[0]=='\r') continue; |