/*
- * This module handles shared rooms, inter-Citadel mail, and outbound
- * mailing list processing.
+ * This module handles loading, saving, and parsing of room network configurations.
*
- * Copyright (c) 2000-2016 by the citadel.org team
+ * Copyright (c) 2000-2017 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 3.
}
}
+
const CfgLineType *GetCfgTypeByEnum(RoomNetCfg eCfg, HashPos *It)
{
const char *Key;
return NULL;
}
+
void ParseGeneric(const CfgLineType *ThisOne, StrBuf *Line, const char *LinePos, OneRoomNetCfg *OneRNCfg)
{
RoomNetCfgLine *nptr;
OneRNCfg->NetConfigs[ThisOne->C] = nptr;
}
+
void SerializeGeneric(const CfgLineType *ThisOne, StrBuf *OutputBuffer, OneRoomNetCfg *OneRNCfg, RoomNetCfgLine *data)
{
int i;
StrBufAppendBufPlain(OutputBuffer, HKEY("\n"), 0);
}
+
void DeleteGenericCfgLine(const CfgLineType *ThisOne, RoomNetCfgLine **data)
{
int i;
*data = NULL;
}
+
RoomNetCfgLine *DuplicateOneGenericCfgLine(const RoomNetCfgLine *data)
{
int i;
}
-
/*
* Given a room number and a textual netconfig, convert to base64 and write to the configdb
*/
}
-
/*
* Given a room number, attempt to load the netconfig configdb entry for that room.
* If it returns NULL, there is no netconfig.
}
-
void AddRoomCfgLine(OneRoomNetCfg *OneRNCfg, struct ctdlroom *qrbuf, RoomNetCfg LineType, RoomNetCfgLine *Line)
{
RoomNetCfgLine **pLine;
char *c = LoadRoomNetConfigFile(CC->room.QRnumber);
if (c) {
- cprintf("%s\n", c);
+ int len = strlen(c);
+ client_write(c, len); // Can't use cprintf() here, it has a limit of 1024 bytes
+ if (c[len] != '\n') {
+ client_write(HKEY("\n"));
+ }
free(c);
}
cprintf("000\n");
free(Node);
}
+
CtdlNodeConf *NewNode(StrBuf *SerializedNode)
{
const char *Pos = NULL;
}
-
-int CtdlNetconfigCheckRoomaccess(
- char *errmsgbuf,
- size_t n,
- const char* RemoteIdentifier)
+int CtdlNetconfigCheckRoomaccess(char *errmsgbuf, size_t n, const char* RemoteIdentifier)
{
OneRoomNetCfg *RNCfg;
int found;
}
-
/*
* cmd_netp() - authenticate to the server as another Citadel node polling
* for network traffic
free(TheNetMap);
}
+
CtdlNetMap *NewNetMap(StrBuf *SerializedNetMap)
{
const char *Pos = NULL;
return NM;
}
+
HashList* CtdlReadNetworkMap(void)
{
const char *LinePos;
return Hash;
}
+
StrBuf *CtdlSerializeNetworkMap(HashList *Map)
{
void *vMap;
}
-
/*
* Module entry point
*/