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. */ 19int 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_data.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} 37