]> arthur.barton.de Git - netatalk.git/blob - libatalk/dsi/dsi_cmdreply.c
5b0d627de2c788e7356ffeb50219163d6007cb3c
[netatalk.git] / libatalk / dsi / dsi_cmdreply.c
1 /*
2  * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
3  * All rights reserved. See COPYRIGHT.
4  */
5
6 #ifdef HAVE_CONFIG_H
7 #include "config.h"
8 #endif /* HAVE_CONFIG_H */
9
10 #include <stdio.h>
11 #include <arpa/inet.h>
12
13 #include <atalk/dsi.h>
14 #include <atalk/logger.h>
15
16 /* this assumes that the reply follows right after the command, saving
17  * on a couple assignments. specifically, command, requestID, and
18  * reserved field are assumed to already be set. */ 
19 int dsi_cmdreply(DSI *dsi, const int err)
20 {
21     int ret;
22
23     LOG(log_debug, logtype_dsi, "dsi_cmdreply(DSI ID: %u, len: %zd): START",
24         dsi->clientID, dsi->datalen);
25
26     dsi->header.dsi_flags = DSIFL_REPLY;
27     dsi->header.dsi_len = htonl(dsi->datalen);
28     dsi->header.dsi_code = htonl(err);
29
30     ret = dsi_stream_send(dsi, dsi->data, dsi->datalen);
31
32     LOG(log_debug, logtype_dsi, "dsi_cmdreply(DSI ID: %u, len: %zd): END",
33         dsi->clientID, dsi->datalen);
34
35     return ret;
36 }