Skip to content
Snippets Groups Projects
Commit 96a92435 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Remove SMBACTIV utility

If/when anyone wants this functionality again, write a short JS util.
For reference:
https://synchro.net/docs/utility_reference.html#SMBACTIV

This fixes issue #384.
parent 6f3b22e6
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #4249 passed
......@@ -279,9 +279,6 @@ DELFILES_OBJS = $(LOAD_CFG_OBJS) \
DUPEFIND_OBJS = $(LOAD_CFG_OBJS) \
$(OBJODIR)/dupefind$(OFILE)
SMBACTIV_OBJS = $(LOAD_CFG_OBJS) \
$(OBJODIR)/smbactiv$(OFILE)
READSAUCE_OBJS = \
$(OBJODIR)/readsauce$(OFILE)
......
......@@ -53,8 +53,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sexyz", "sexyz.vcxproj", "{
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slog", "slog.vcxproj", "{D39AE752-B910-4EFF-A819-1FA8F30FA3D0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smbactiv", "smbactiv.vcxproj", "{453A20D0-847F-4E21-A31B-B316EEA59BFD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smblib", "..\smblib\smblib.vcxproj", "{D674842B-2F41-42CB-9426-B3C4B0682574}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smbutil", "smbutil.vcxproj", "{D9C78CF8-0F08-417B-A242-22B86626F00D}"
......
/****************************************************************************
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* of the License, or (at your option) any later version. *
* See the GNU General Public License for more details: gpl.txt or *
* http://www.fsf.org/copyleft/gpl.html *
* *
* For Synchronet coding style and modification guidelines, see *
* http://www.synchro.net/source.html *
* *
* Note: If this box doesn't appear square, then you need to fix your tabs. *
****************************************************************************/
#include "load_cfg.h"
#include "smblib.h"
#include "str_util.h"
#include "nopen.h"
#include <stdarg.h>
#define SMBACTIV_VER "1.01"
typedef struct {
ulong read;
ulong firstmsg;
} sub_status_t;
smb_t smb;
ulong first_msg()
{
smbmsg_t msg;
msg.idx_offset=0;
msg.hdr.number=0;
if(smb_getmsgidx(&smb,&msg)) /* Get first message index */
return(0);
return(msg.idx.number);
}
long lputs(char *str)
{
char tmp[256];
int i,j,k;
j=strlen(str);
for(i=k=0;i<j;i++) /* remove CRs */
if(str[i]==CR && str[i+1]==LF)
continue;
else
tmp[k++]=str[i];
tmp[k]=0;
return(fputs(tmp,stderr));
}
/****************************************************************************/
/* Performs printf() through local assembly routines */
/* Called from everywhere */
/****************************************************************************/
int lprintf(const char *fmat, ...)
{
va_list argptr;
char sbuf[256];
int chcount;
va_start(argptr,fmat);
chcount=vsprintf(sbuf,fmat,argptr);
va_end(argptr);
lputs(sbuf);
return(chcount);
}
void bail(int code)
{
exit(code);
}
int main(int argc, char **argv)
{
char str[256];
const char *p;
int i,j,file;
off_t length;
ulong max_users=0xffffffff;
uint32_t l;
sub_status_t *sub_status;
scfg_t cfg;
glob_t gl;
size_t glp;
fprintf(stderr,"\nSMBACTIV Version %s (%s) - Synchronet Message Base Activity "
"Monitor\n", SMBACTIV_VER, PLATFORM_DESC);
if(argc>1)
max_users=atol(argv[1]);
if(!max_users) {
lprintf("\nusage: SMBACTIV [max_users]\n\n");
lprintf("max_users = limit output to subs read by this many users "
"or less\n");
return(0); }
p = get_ctrl_dir(/* warn: */TRUE);
memset(&cfg,0,sizeof(cfg));
cfg.size=sizeof(cfg);
SAFECOPY(cfg.ctrl_dir,p);
if(!load_cfg(&cfg, /* text: */NULL, /* prep: */TRUE, /* node: */FALSE, str, sizeof(str))) {
fprintf(stderr,"!ERROR loading configuration files: %s\n",str);
return(1);
}
(void)chdir(cfg.ctrl_dir);
if((sub_status=(sub_status_t *)MALLOC
(cfg.total_subs*sizeof(sub_status_t)))==NULL) {
printf("ERROR Allocating memory for sub_status\r\n");
return(1); }
lprintf("\nReading sub-board ");
for(i=0;i<cfg.total_subs;i++) {
lprintf("%5d of %-5d\b\b\b\b\b\b\b\b\b\b\b\b\b\b",i+1,cfg.total_subs);
sprintf(smb.file,"%s%s",cfg.sub[i]->data_dir,cfg.sub[i]->code);
if((j=smb_open(&smb))!=0) {
lprintf("Error %d opening %s\r\n",j,smb.file);
sub_status[i].read=0;
sub_status[i].firstmsg=0L;
continue; }
sub_status[i].read=0;
sub_status[i].firstmsg=first_msg();
smb_close(&smb); }
sprintf(str,"%suser/ptrs/*.ixb",cfg.data_dir);
if(glob(str, GLOB_MARK, NULL, &gl)) {
lprintf("Unable to find any user pointer files.\n");
globfree(&gl);
free(sub_status);
return(1); }
lprintf("\nComparing user pointers ");
for(glp=0; glp<gl.gl_pathc; glp++) {
lprintf("%-5ld\b\b\b\b\b",glp);
SAFECOPY(str,gl.gl_pathv[glp]);
if((file=nopen(str,O_RDONLY|O_BINARY))==-1) {
continue; }
length=filelength(file);
for(i=0;i<cfg.total_subs;i++) {
if(sub_status[i].read>max_users)
continue;
if(length<(cfg.sub[i]->ptridx+1)*10UL)
continue;
else {
lseek(file,((long)cfg.sub[i]->ptridx*10L)+4L,SEEK_SET);
read(file,&l,4); }
if(l>sub_status[i].firstmsg)
sub_status[i].read++; }
close(file); }
globfree(&gl);
printf("NumUsers Sub-board\n");
printf("-------- -------------------------------------------------"
"-----------\n");
for(i=0;i<cfg.total_subs;i++) {
if(sub_status[i].read>max_users)
continue;
printf("%8lu %-*s %-*s\n"
,sub_status[i].read
,LEN_GSNAME,cfg.grp[cfg.sub[i]->grp]->sname
,LEN_SLNAME,cfg.sub[i]->lname); }
return(0);
}
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{453A20D0-847F-4E21-A31B-B316EEA59BFD}</ProjectGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141_xp</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v141_xp</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
<Import Project="..\xpdev\xpdev.props" />
<Import Project="..\smblib\smblib.props" />
<Import Project="..\build\undeprecate.props" />
<Import Project="..\build\target_ia32.props" />
<Import Project="..\hash\hash.props" />
<Import Project="..\encode\encode.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
<Import Project="..\xpdev\xpdev.props" />
<Import Project="..\smblib\smblib.props" />
<Import Project="..\build\undeprecate.props" />
<Import Project="..\build\target_ia32.props" />
<Import Project="..\hash\hash.props" />
<Import Project="..\encode\encode.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\msvc.win32.exe.debug\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\msvc.win32.debug\smbactiv\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\msvc.win32.exe.release\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\msvc.win32.release\smbactiv\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<TypeLibraryName>.\msvc.win32.exe.debug/smbactiv.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;_CONSOLE;SBBS_EXPORTS;NO_SOCKET_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\msvc.win32.debug\smbactiv/smbactiv.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\msvc.win32.debug\smbactiv/</AssemblerListingLocation>
<ObjectFileName>.\msvc.win32.debug\smbactiv/</ObjectFileName>
<ProgramDataBaseFileName>.\msvc.win32.debug\smbactiv/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<OutputFile>.\msvc.win32.exe.debug/smbactiv.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\msvc.win32.exe.debug/smbactiv.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\msvc.win32.exe.debug/smbactiv.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<TypeLibraryName>.\msvc.win32.exe.release/smbactiv.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;SBBS_EXPORTS;NO_SOCKET_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\msvc.win32.release\smbactiv/smbactiv.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\msvc.win32.release\smbactiv/</AssemblerListingLocation>
<ObjectFileName>.\msvc.win32.release\smbactiv/</ObjectFileName>
<ProgramDataBaseFileName>.\msvc.win32.release\smbactiv/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<OutputFile>.\msvc.win32.exe.release/smbactiv.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ProgramDatabaseFile>.\msvc.win32.exe.release/smbactiv.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\msvc.win32.exe.release/smbactiv.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="smbactiv.c">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\smblib\smblib.vcxproj">
<Project>{d674842b-2f41-42cb-9426-b3c4b0682574}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\xpdev\xpdev.vcxproj">
<Project>{7428a1e8-56b7-4868-9c0e-29d031689feb}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="load_cfg.vcxproj">
<Project>{08fc395f-bc60-499d-9ce9-170ed718bb94}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
......@@ -31,7 +31,6 @@ QWKNODES = $(EXEODIR)/qwknodes$(EXEFILE)
SLOG = $(EXEODIR)/slog$(EXEFILE)
DELFILES = $(EXEODIR)/delfiles$(EXEFILE)
DUPEFIND = $(EXEODIR)/dupefind$(EXEFILE)
SMBACTIV = $(EXEODIR)/smbactiv$(EXEFILE)
READSAUCE = $(EXEODIR)/readsauce$(EXEFILE)
PKTDUMP = $(EXEODIR)/pktdump$(EXEFILE)
FMSGDUMP = $(EXEODIR)/fmsgdump$(EXEFILE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment