- NW->IO.Data = NW;
- NW->IO.SendDone = NWC_DispatchWriteDone;
- NW->IO.ReadDone = NWC_DispatchReadDone;
- NW->IO.Terminate = NWC_Terminate;
- NW->IO.LineReader = NWC_ReadServerStatus;
- NW->IO.ConnFail = NWC_ConnFail;
- NW->IO.DNSFail = NWC_DNSFail;
- NW->IO.Timeout = NWC_Timeout;
- NW->IO.ShutdownAbort = NWC_Shutdown;
-
- NW->IO.SendBuf.Buf = NewStrBufPlain(NULL, 1024);
- NW->IO.RecvBuf.Buf = NewStrBufPlain(NULL, 1024);
- NW->IO.IOBuf = NewStrBuf();
-
- NW->IO.NextState = eReadMessage;
- SubC = CloneContext (&networker_client_CC);
- SubC->session_specific_data = (char*) NW;
- NW->IO.CitContext = SubC;
+ InitIOStruct(&NW->IO,
+ NW,
+ eReadMessage,
+ NWC_ReadServerStatus,
+ NWC_DNSFail,
+ NWC_DispatchWriteDone,
+ NWC_DispatchReadDone,
+ NWC_Terminate,
+ NWC_ConnFail,
+ NWC_Timeout,
+ NWC_Shutdown);
+
+ safestrncpy(((CitContext *)NW->IO.CitContext)->cs_host,
+ ChrPtr(NW->host),
+ sizeof(((CitContext *)NW->IO.CitContext)->cs_host));