Lines 259-269
Link Here
|
259 |
return t.readLine(buf, bufSize, stripCR, timeout); |
259 |
return t.readLine(buf, bufSize, stripCR, timeout); |
260 |
} |
260 |
} |
261 |
|
261 |
|
262 |
void do_work(thread_data *td) |
262 |
void do_work(thread_data *td) |
263 |
{ |
263 |
{ |
264 |
base_tcp t(td->fd, log, td->debug, &res, td->ssl); |
264 |
base_tcp t(td->fd, log, td->debug, &res |
|
|
265 |
#ifdef USE_SSL |
266 |
, td->ssl |
267 |
#endif |
268 |
); |
265 |
struct sockaddr_in name; |
269 |
struct sockaddr_in name; |
266 |
socklen_t namelen = sizeof(name); |
270 |
socklen_t namelen = sizeof(name); |
267 |
char buf[1024]; |
271 |
char buf[1024]; |
268 |
|
272 |
|
269 |
int rc = getsockname(td->fd, (sockaddr *)&name, &namelen); |
273 |
int rc = getsockname(td->fd, (sockaddr *)&name, &namelen); |
Lines 474-484
Link Here
|
474 |
thread_data *td = (thread_data *)malloc(sizeof(thread_data)); |
478 |
thread_data *td = (thread_data *)malloc(sizeof(thread_data)); |
475 |
td->threadNum = i; |
479 |
td->threadNum = i; |
476 |
td->fd = fd; |
480 |
td->fd = fd; |
477 |
memcpy(&td->addr, &addr, sizeof(addr)); |
481 |
memcpy(&td->addr, &addr, sizeof(addr)); |
478 |
td->debug = debug ? new Logit(*debug, i) : NULL; |
482 |
td->debug = debug ? new Logit(*debug, i) : NULL; |
|
|
483 |
#ifdef USE_SSL |
479 |
td->ssl = use_ssl; |
484 |
td->ssl = use_ssl; |
|
|
485 |
#endif |
480 |
int p = pthread_create(&thread_info[i], &attr, smtp_worker, PVOID(td)); |
486 |
int p = pthread_create(&thread_info[i], &attr, smtp_worker, PVOID(td)); |
481 |
pthread_attr_destroy(&attr); |
487 |
pthread_attr_destroy(&attr); |
482 |
if(p) |
488 |
if(p) |
483 |
{ |
489 |
{ |
484 |
fprintf(stderr, "Can't create a thread.\n"); |
490 |
fprintf(stderr, "Can't create a thread.\n"); |