--- deliantra/server/socket/image.C 2006/12/13 21:27:09 1.6 +++ deliantra/server/socket/image.C 2006/12/14 22:45:41 1.12 @@ -231,12 +231,12 @@ LOG (llevError, "To high a setnum in image_info file: %d > %d\n", len, MAX_FACE_SETS); abort (); } - facesets[len].prefix = strdup_local (cps[1]); - facesets[len].fullname = strdup_local (cps[2]); + facesets[len].prefix = strdup (cps[1]); + facesets[len].fullname = strdup (cps[2]); facesets[len].fallback = atoi (cps[3]); - facesets[len].size = strdup_local (cps[4]); - facesets[len].extension = strdup_local (cps[5]); - facesets[len].comment = strdup_local (cps[6]); + facesets[len].size = strdup (cps[4]); + facesets[len].extension = strdup (cps[5]); + facesets[len].comment = strdup (cps[6]); } } close_and_delete (infile, compressed); @@ -314,28 +314,21 @@ */ void -SetFaceMode (char *buf, int len, NewSocket * ns) +SetFaceMode (char *buf, int len, client_socket *ns) { - char tmp[256]; - int mask = (atoi (buf) & CF_FACE_CACHE), mode = (atoi (buf) & ~CF_FACE_CACHE); if (mode == CF_FACE_NONE) - { - ns->facecache = 1; - } + ns->facecache = 1; else if (mode != CF_FACE_PNG) { - sprintf (tmp, "drawinfo %d %s", NDI_RED, "Warning - send unsupported face mode. Will use Png"); - Write_String_To_Socket (ns, tmp, strlen (tmp)); -#ifdef ESRV_DEBUG - LOG (llevDebug, "SetFaceMode: Invalid mode from client: %d\n", mode); -#endif + packet sl; + sl.printf ("drawinfo %d %s", NDI_RED, "Warning - send unsupported face mode. Will use Png"); + ns->send_packet (sl); } + if (mask) - { - ns->facecache = 1; - } + ns->facecache = 1; } /** @@ -345,7 +338,7 @@ */ void -SendFaceCmd (char *buff, int len, NewSocket * ns) +SendFaceCmd (char *buff, int len, client_socket * ns) { long tmpnum = atoi (buff); short facenum = tmpnum & 0xffff; @@ -364,7 +357,7 @@ */ void -esrv_send_face (NewSocket *ns, short face_num, int nocache) +esrv_send_face (client_socket *ns, short face_num, int nocache) { char fallback; @@ -374,7 +367,7 @@ return; } - SockList sl (MAXSOCKBUF); + packet sl; fallback = get_face_fallback (ns->faceset, face_num); if (facesets[fallback].faces[face_num].data == NULL) @@ -394,7 +387,7 @@ sl << uint32 (facesets[fallback].faces[face_num].checksum) << new_faces[face_num].name; - Send_With_Handling (ns, &sl); + ns->send_packet (sl); } else { @@ -407,11 +400,10 @@ sl << uint32 (facesets[fallback].faces[face_num].datalen) << data (facesets[fallback].faces[face_num].data, facesets[fallback].faces[face_num].datalen); - Send_With_Handling (ns, &sl); + ns->send_packet (sl); } ns->faces_sent[face_num] |= NS_FACESENT_FACE; - sl.free (); } /** @@ -421,9 +413,9 @@ */ void -send_image_info (NewSocket * ns, char *params) +send_image_info (client_socket * ns, char *params) { - SockList sl (MAXSOCKBUF); + packet sl; sl.printf ("replyinfo image_info\n%d\n%d\n", nrofpixmaps - 1, bmaps_checksum); @@ -433,8 +425,7 @@ i, facesets[i].prefix, facesets[i].fullname, facesets[i].fallback, facesets[i].size, facesets[i].extension, facesets[i].comment); - Send_With_Handling (ns, &sl); - sl.free (); + ns->send_packet (sl); } /** @@ -447,12 +438,12 @@ * - name */ void -send_image_sums (NewSocket * ns, char *params) +send_image_sums (client_socket * ns, char *params) { int start, stop; char *cp, buf[MAX_BUF]; - SockList sl (MAXSOCKBUF); + packet sl; start = atoi (params); for (cp = params; *cp != '\0'; cp++) @@ -462,8 +453,9 @@ stop = atoi (cp); if (stop < start || *cp == '\0' || (stop - start) > 1000 || stop >= nrofpixmaps) { - sprintf (buf, "replyinfo image_sums %d %d", start, stop); - cs_write_string (ns, buf, strlen (buf)); + sl.printf ("replyinfo image_sums %d %d", start, stop); + ns->send_packet (sl); + sl.reset (); return; } @@ -486,13 +478,12 @@ * size to less than 1000, since that is what we claim the protocol would * support. */ - if (sl.len >= MAXSOCKBUF) + if (sl.length () >= MAXSOCKBUF) { - LOG (llevError, "send_image_send: buffer overrun, %d > %d\n", sl.len, MAXSOCKBUF); + LOG (llevError, "send_image_send: buffer overrun, %d > %d\n", sl.length (), MAXSOCKBUF); abort (); } - Send_With_Handling (ns, &sl); - sl.free (); + ns->send_packet (sl); }