mirror of https://github.com/xemu-project/xemu.git
slirp: add slirp own version of pstrcpy
Remove a dependency on qemu util. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
parent
ba1be96531
commit
d1c4b3e97d
|
@ -320,8 +320,8 @@ Slirp *slirp_init(int restricted, bool in_enabled, struct in_addr vnetwork,
|
||||||
slirp->vprefix_len = vprefix_len;
|
slirp->vprefix_len = vprefix_len;
|
||||||
slirp->vhost_addr6 = vhost6;
|
slirp->vhost_addr6 = vhost6;
|
||||||
if (vhostname) {
|
if (vhostname) {
|
||||||
pstrcpy(slirp->client_hostname, sizeof(slirp->client_hostname),
|
slirp_pstrcpy(slirp->client_hostname, sizeof(slirp->client_hostname),
|
||||||
vhostname);
|
vhostname);
|
||||||
}
|
}
|
||||||
slirp->tftp_prefix = g_strdup(tftp_path);
|
slirp->tftp_prefix = g_strdup(tftp_path);
|
||||||
slirp->bootp_filename = g_strdup(bootfile);
|
slirp->bootp_filename = g_strdup(bootfile);
|
||||||
|
|
|
@ -216,7 +216,7 @@ static void tftp_send_error(struct tftp_session *spt,
|
||||||
|
|
||||||
tp->tp_op = htons(TFTP_ERROR);
|
tp->tp_op = htons(TFTP_ERROR);
|
||||||
tp->x.tp_error.tp_error_code = htons(errorcode);
|
tp->x.tp_error.tp_error_code = htons(errorcode);
|
||||||
pstrcpy((char *)tp->x.tp_error.tp_msg, sizeof(tp->x.tp_error.tp_msg), msg);
|
slirp_pstrcpy((char *)tp->x.tp_error.tp_msg, sizeof(tp->x.tp_error.tp_msg), msg);
|
||||||
|
|
||||||
m->m_len = sizeof(struct tftp_t) - (TFTP_BLOCKSIZE_MAX + 2) + 3 + strlen(msg)
|
m->m_len = sizeof(struct tftp_t) - (TFTP_BLOCKSIZE_MAX + 2) + 3 + strlen(msg)
|
||||||
- sizeof(struct udphdr);
|
- sizeof(struct udphdr);
|
||||||
|
|
17
slirp/util.c
17
slirp/util.c
|
@ -188,3 +188,20 @@ int slirp_closesocket(int fd)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
|
void slirp_pstrcpy(char *buf, int buf_size, const char *str)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
char *q = buf;
|
||||||
|
|
||||||
|
if (buf_size <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
c = *str++;
|
||||||
|
if (c == 0 || q >= buf + buf_size - 1)
|
||||||
|
break;
|
||||||
|
*q++ = c;
|
||||||
|
}
|
||||||
|
*q = '\0';
|
||||||
|
}
|
||||||
|
|
|
@ -91,4 +91,6 @@ static inline int slirp_socket_set_fast_reuse(int fd)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void slirp_pstrcpy(char *buf, int buf_size, const char *str);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue