+
+
+// Determine whether the supplied email address is subscribed to the supplied room's mailing list service.
+int is_email_subscribed_to_list(char *email, char *room_name) {
+ struct ctdlroom room;
+ long roomnum;
+ char *roomnetconfig;
+ int found_it = 0;
+
+ if (CtdlGetRoom(&room, room_name)) {
+ return(0); // room not found, so definitely not subscribed
+ }
+ roomnum = room.QRnumber;
+ roomnetconfig = LoadRoomNetConfigFile(roomnum);
+ if (roomnetconfig == NULL) {
+ return(0);
+ }
+
+ // We're going to do a very sloppy match here and simply search for the specified email address
+ // anywhere in the room's netconfig. If you don't like this, fix it yourself.
+ if (bmstrcasestr(roomnetconfig, email)) {
+ found_it = 1;
+ }
+ else {
+ found_it = 0;
+ }
+
+ free(roomnetconfig);
+ return(found_it);
+}