Skip to content

Commit 226828e

Browse files
authored
Merge pull request #12 from pbiering/master
fixes related to netcvupdate and lftp and other minor improvements
2 parents d218e75 + 13a3c87 commit 226828e

File tree

11 files changed

+100
-23
lines changed

11 files changed

+100
-23
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@
44
*.a
55
*.so
66
*.pot
7+
mcast/client/mcli
8+
mcast/tool/netcvdiag
9+
mcast/tool/netcvlogview
10+
mcast/tool/netcvupdate
11+
mcast/tool/netcvdiag-static
12+
mcast/tool/netcvupdate-static

HISTORY

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
VDR Plugin 'mcli' Revision History
22
----------------------------------
3+
2022-02-07 0.9.7
4+
- pbiering fix lftp support for netcvupdate and cam_menu.c
5+
- pbiering add new options for plugin: --netcvupdate-use-lftp --netcvupdate-enable-debug
6+
7+
2022-01-22
8+
- pbiering fix some log statements and REELVDR related defines
9+
310
2021-06-12 0.9.6
411
- pbiering several log extensions
512

README

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ except netcv2dvbip are
1212
Copyright (C) 2007-2010 by BayCom GmbH <[email protected]>
1313

1414
Extensions by contributors
15-
Copyright (C) 2020-2021 by Peter Bieringer <[email protected]>
15+
Copyright (C) 2020-2022 by Peter Bieringer <[email protected]>
1616
Copyright (C) 2013-2015 by hsteinhaus
1717
Copyright (C) 2014 by mhorwath
1818
Copyright (C) 2013 by Hoppaz
@@ -124,13 +124,18 @@ END
124124
TUNE_PC 0x40 // ProvideChannel
125125
FILTER 0x80
126126

127-
128127
--logskipmask <mask> (NEW since 0.9.6, see logging.h)
129128
<mask> can be hexadecimal (0x..) or decimal
130129
conditionally disable log messages
131130
recv_ts_func/Data PIDs 0x01 // skip log of issues with Data pids (0 or 16-18) like Mcli::recv_ts_func: Discontinuity on receiver 0x559f735c7e00 for pid 18: 5->7 at pos 0/7
132131
SetChannelDevice/Reject 0x02 // skip log of Mcli::SetChannelDevice: Reject tuning on DVB (interesting if cam-disable is active)
133132

133+
--netcvupdate-use-lftp
134+
add "lftp" specific option to "netcvupdate" calls
135+
136+
--netcvupdate-enable-debug
137+
add debug option to "netcvupdate" calls
138+
134139

135140
== RPM Build Support included ==
136141

cam_menu.c

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
#define TMP_PATH "/tmp"
3030
#define TMP_FILE TMP_PATH"/netceiver.conf"
3131

32+
extern bool m_netcvupdate_use_lftp;
33+
extern bool m_netcvupdate_enable_debug;
34+
3235
class cCamMtd : public cMenuEditIntItem {
3336
friend class cNCUpdate;
3437
public:
@@ -137,8 +140,16 @@ class cNCUpdate : public cThread {
137140
} // case 1
138141
case 2: {
139142
m_statestr = cString::sprintf(tr("Getting configuration from Netceiver %s"), uuid);
140-
cString c = cString::sprintf("rm -f %s; cd %s; netcvupdate -i %s%s%s -D", TMP_FILE, TMP_PATH, uuid, m_iface ? " -d " : "", m_iface ? m_iface : "");
141-
//isyslog("EXEC1 %s", (const char *)c);
143+
cString c = cString::sprintf("rm -f %s; cd %s; netcvupdate%s%s -i %s%s%s -D"
144+
, TMP_FILE
145+
, TMP_PATH
146+
, m_netcvupdate_use_lftp ? " -n" : ""
147+
, m_netcvupdate_enable_debug ? " -e" : " -q" // either enable debugging or be even quiet
148+
, uuid
149+
, m_iface ? " -d " : ""
150+
, m_iface ? m_iface : ""
151+
);
152+
dsyslog("EXEC1 %s", (const char *)c);
142153
if(SystemExec(c)) {
143154
m_statestr = cString::sprintf(tr("Failed to get configuration from Netceiver %s"), uuid);
144155
m_state = 0;
@@ -173,8 +184,15 @@ class cNCUpdate : public cThread {
173184
} // case 3
174185
case 4: {
175186
m_statestr = cString::sprintf(tr("Saving configuration for Netceiver %s"), uuid);
176-
cString c = cString::sprintf("netcvupdate -i %s%s%s -U %s -K", uuid, m_iface ? " -d " : "", m_iface ? m_iface : "", TMP_FILE);
177-
//isyslog("EXEC2 %s", (const char *)c);
187+
cString c = cString::sprintf("netcvupdate%s%s -i %s%s%s -U %s -K"
188+
, m_netcvupdate_use_lftp ? " -n" : ""
189+
, m_netcvupdate_enable_debug ? " -e" : " -q" // either enable debugging or be even quiet
190+
, uuid
191+
, m_iface ? " -d " : ""
192+
, m_iface ? m_iface : ""
193+
, TMP_FILE
194+
);
195+
dsyslog("EXEC2 %s", (const char *)c);
178196
if(SystemExec(c)) {
179197
m_statestr = cString::sprintf(tr("Failed to save configuration for Netceiver %s"), uuid);
180198
m_state = 0;

contrib/vdr-mcli.conf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@
3030
MCLI_DEVICE=${MCLI_DEVICE:-eth1}
3131

3232
PLUGIN_OPTIONS="--ifname $MCLI_DEVICE"
33+
34+
## enable if "netcvupdate" should be called with debug option
35+
#PLUGIN_OPTIONS="$PLUGIN_OPTIONS --netcvupdate-enable-debug"
36+
37+
## enable if system has only "lftp" available
38+
#PLUGIN_OPTIONS="$PLUGIN_OPTIONS --netcvupdate-use-lftp"

contrib/vdr-mcli.spec

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
%define rel 4
1212

1313
Name: vdr-%{pname}
14-
Version: 0.9.6
14+
Version: 0.9.7
1515
%if 0%{?gitcommit:1}
1616
Release: %{rel}.git.%{gitshortcommit}.%{gitdate}%{?dist}
1717
%else
@@ -131,6 +131,9 @@ systemctl daemon-reload
131131

132132

133133
%changelog
134+
* Mon Feb 07 2022 Peter Bieringer <[email protected]> - 0.9.7-4
135+
- Update to new release
136+
134137
* Mon Feb 08 2021 Peter Bieringer <[email protected]> - 0.9.5-4
135138
- Use only plugin/systemd config from contrib subdirectory
136139

device.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static int handle_ten (tra_t * ten, void *p)
4444
cMcliDevice *m = (cMcliDevice *) p;
4545
if (ten) {
4646
if (!flag_signal || (m_logskipmask & DEBUG_BIT_SIGNAL)) {
47-
dsyslog("mcli::%s: Status:%02x, Strength:%04x, SNR:%04x, BER:%04x\n", __FUNCTION__, ten->s.st, ten->s.strength, ten->s.snr, ten->s.ber);
47+
dsyslog("mcli::%s: m_chan.Name='%s' m_chan.Number=%d: Status:%02x Strength:0x%04x SNR:0x%04x BER:0x%04x\n", __FUNCTION__, m->CurChan()->Name(), m->CurChan()->Number(), ten->s.st, ten->s.strength, ten->s.snr, ten->s.ber);
4848
flag_signal = true;
4949
};
5050
m->SetTenData (ten);
@@ -56,7 +56,8 @@ static int handle_ten (tra_t * ten, void *p)
5656
memset (&ten, 0, sizeof (tra_t));
5757
m->SetTenData (&ten);
5858
if (flag_signal || (m_logskipmask & DEBUG_BIT_SIGNAL)) {
59-
dsyslog("mcli::%s: Signal lost\n", __FUNCTION__);
59+
//const cChannel *m_chan = m->CurChan();
60+
dsyslog("mcli::%s: m_chan.Name='%s' m_chan.Number=%d: Signal lost\n", __FUNCTION__, m->CurChan()->Name(), m->CurChan()->Number());
6061
flag_signal = false;
6162
};
6263
}
@@ -278,7 +279,7 @@ int cMcliDevice::HandleTsData (unsigned char *buffer, size_t len)
278279
int m_PB_Free = m_PB->Free();
279280
if((size_t)m_PB_Free < len) { // m_PB->Free() returns an int
280281
m_PB->Clear();
281-
if(Receiving(true)) esyslog("mcli::%s: buffer overflow [tuner: %d] %s (len=%ld m_PB_Free=%d)", __FUNCTION__, CardIndex(), m_chan.Name(), len, m_PB_Free);
282+
if(Receiving(true)) esyslog("mcli::%s: buffer overflow DVB:%d m_chan.Name='%s' m_chan.Number=%d (len=%ld m_PB_Free=%d)", __FUNCTION__, CardIndex(), m_chan.Name(), m_chan.Number(), len, m_PB_Free);
282283
}
283284
return m_PB->Put(buffer, len);
284285
#else

device.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ class cMcliDevice:public cDevice
8787
return (m_fetype == FE_DVBS2)?2:1;
8888
}
8989

90-
#ifdef REELVDR
90+
//#ifdef REELVDR
9191
const cChannel *CurChan () const
9292
{
9393
return &m_chan;
9494
};
95-
#endif
95+
//#endif
9696
unsigned int FrequencyToHz (unsigned int f)
9797
{
9898
while (f && f < 1000000)

mcast/tool/netcvupdate.c

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ char socket_path[256]=API_SOCK_NAMESPACE;
4141
int ftp_client_lftp = 0;
4242
int debug = 0;
4343

44+
const char* lftp_standard_options = "set ftp:use-site-utime off\nset ftp:use-site-utime2 off\nset ftp:use-feat off\nset ftp:ssl-allow false\n";
45+
4446
#ifdef USE_MCLI_API
4547
/*------------------------------------------------------------------------*/
4648
#define API_WAIT_RESPONSE(cmd) { cmd->state=API_REQUEST; \
@@ -75,11 +77,13 @@ int api_init(char *path)
7577
/*------------------------------------------------------------------------*/
7678
void add_upload(char* cmd, char* localfile, char *remotepath, char *remotefile)
7779
{
78-
char tmp[1024];
80+
char tmp[2048];
7981
sprintf(tmp,
82+
"%s" // lftp: set various flags
8083
"cd %s\n"
8184
"site exec rm -f /tmp/update/%s\n"
82-
"put %s\n",
85+
"put %s\n",
86+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
8387
remotepath, remotefile, localfile);
8488
strcat(cmd,tmp);
8589
}
@@ -89,8 +93,8 @@ void add_download(char* cmd, char *remotepath, char *remotefile)
8993
char tmp[1024];
9094
sprintf(tmp,
9195
"cd %s\n"
92-
"get %s\n",
93-
remotepath,remotefile);
96+
"get %s%s\n",
97+
remotepath,((ftp_client_lftp == 1) ? "-e ": ""),remotefile);
9498
strcat(cmd,tmp);
9599
}
96100
/*------------------------------------------------------------------------*/
@@ -209,11 +213,13 @@ int run_ftp(char *tmpdir,char *script, int timeout, char *pipeout)
209213
int do_reboot(char *tmpdir, char *ip, char* iface, char *user, char* pwd)
210214
{
211215
sprintf(script,
216+
"%s" // lftp: set various flags
212217
"open %s%%%s\n"
213218
"user %s %s\n"
214219
"site exec reboot -d 5\n"
215220
"quit\n"
216221
,
222+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
217223
ip,iface,user,pwd);
218224
return run_ftp(tmpdir, script, 15,"");
219225
}
@@ -235,11 +241,13 @@ int do_list_fw(char *tmpdir, char *ip, char* iface, char *user, char* pwd, int m
235241
}
236242

237243
sprintf(script,
244+
"%s" // lftp: set various flags
238245
"open %s%%%s\n"
239246
"user %s %s\n"
240247
"ls /mmc/\n"
241248
"quit\n"
242249
,
250+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
243251
ip,iface,user,pwd);
244252
sprintf(pipeout," > %s",tmpfile);
245253
ret=run_ftp(tmpdir, script, 15, pipeout);
@@ -284,11 +292,13 @@ int do_list_fw(char *tmpdir, char *ip, char* iface, char *user, char* pwd, int m
284292
int do_kill(char *tmpdir, char *ip, char* iface, char *user, char* pwd)
285293
{
286294
sprintf(script,
295+
"%s" // lftp: set various flags
287296
"open %s%%%s\n"
288297
"user %s %s\n"
289298
"site exec killall -9 mserv\n"
290299
"quit\n"
291300
,
301+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
292302
ip,iface,user,pwd);
293303
return run_ftp(tmpdir, script, 15,"");
294304
}
@@ -332,13 +342,14 @@ int do_single_upload( char *uuid, char *device, char *remote_path, char *fname,
332342
{
333343
int ret;
334344
sprintf(script,
345+
"%s" // lftp: set various flags
335346
"open %s%%%s\n"
336347
"user %s %s\n"
337348
"cd %s\n"
338-
"put %s %s\n"
339-
// "site exec killall -HUP mserv\n"
349+
"put %s %s%s\n"
340350
"quit",
341-
uuid,device,username,password,remote_path,fname,remote_file);
351+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
352+
uuid,device,username,password,remote_path,fname,((ftp_client_lftp == 1) ? "-o ": ""),remote_file);
342353
ret=run_ftp("", script, 120,"");
343354
return ret;
344355
}
@@ -347,12 +358,14 @@ int do_single_download( char *uuid, char *device, char *remote_path, char *fname
347358
{
348359
int ret;
349360
sprintf(script,
361+
"%s" // lftp: set various flags
350362
"open %s%%%s\n"
351363
"user %s %s\n"
352364
"cd %s\n"
353-
"get %s\n"
365+
"get %s%s\n"
354366
"quit",
355-
uuid,device,username,password,remote_path,fname);
367+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
368+
uuid,device,username,password,remote_path,((ftp_client_lftp == 1) ? "-e ": ""),fname);
356369
ret=run_ftp("", script, 120,"");
357370
return ret;
358371
}
@@ -363,35 +376,41 @@ int fw_action(char *uuid, char* iface, char *user, char* pwd, int mode, char *ve
363376
if (mode==0) { // inactivate
364377
printf("Inactivating version %s\n",version);
365378
sprintf(script,
379+
"%s" // lftp: set various flags
366380
"open %s%%%s\n"
367381
"user %s %s\n"
368382
"cd /mmc\n"
369383
"rename netceivr.%s xetceivr.%s\n"
370384
"quit",
385+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
371386
uuid,device,username,password,version,version);
372387
ret=run_ftp("", script, 120,"");
373388
return ret;
374389
}
375390
else if (mode==1) { // enable
376391
printf("Enabling version %s\n",version);
377392
sprintf(script,
393+
"%s" // lftp: set various flags
378394
"open %s%%%s\n"
379395
"user %s %s\n"
380396
"cd /mmc\n"
381397
"rename xetceivr.%s netceivr.%s\n"
382398
"quit",
399+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
383400
uuid,device,username,password,version,version);
384401
ret=run_ftp("", script, 120,"");
385402
return ret;
386403
}
387404
else if (mode==2) { // delete
388405
printf("Removing version %s\n",version);
389406
sprintf(script,
407+
"%s" // lftp: set various flags
390408
"open %s%%%s\n"
391409
"user %s %s\n"
392410
"site exec rm -rf /mmc/netceivr.%s\n"
393411
"site exec rm -rf /mmc/xetceivr.%s\n"
394412
"quit",
413+
((ftp_client_lftp == 1) ? lftp_standard_options : ""),
395414
uuid,device,username,password,version,version);
396415
ret=run_ftp("", script, 120,"");
397416
return ret;

mcli.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ static int reconf = 0;
2525
int m_debugmask = 0;
2626
int m_logskipmask = 0;
2727
bool m_cam_disable = false;
28+
bool m_netcvupdate_use_lftp = false;
29+
bool m_netcvupdate_enable_debug = false;
2830

2931
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3032

@@ -293,6 +295,8 @@ const char *cPluginMcli::CommandLineHelp (void)
293295
" --sock-path <filepath>\n"
294296
" --debugmask <value> (decimal or hex debug mask)\n"
295297
" --logskipmask <value> (decimal or hex log skip mask)\n"
298+
" --netcvupdate-use-lftp\n"
299+
" --netcvupdate-enable-debug\n"
296300
"\n"
297301
);
298302
}
@@ -319,6 +323,8 @@ bool cPluginMcli::ProcessArgs (int argc, char *argv[])
319323
{"debugmask", 1, 0, 0}, //10: debug mask for selective debugging, see mcli.h
320324
{"cam-disable", 0, 0, 0}, //11: disable use of CAM (skip channels)
321325
{"logskipmask", 1, 0, 0}, //12: log mask for selective disabling of logging, see mcli.h
326+
{"netcvupdate-use-lftp", 0, 0, 0}, //13
327+
{"netcvupdate-enable-debug", 0, 0, 0}, //14
322328
{NULL, 0, 0, 0}
323329
};
324330

@@ -385,6 +391,12 @@ bool cPluginMcli::ProcessArgs (int argc, char *argv[])
385391
};
386392
isyslog("mcli::%s: enable log skip mask: %d (0x%02x)", __FUNCTION__, m_logskipmask, m_logskipmask);
387393
break;
394+
case 13:
395+
m_netcvupdate_use_lftp = true;
396+
break;
397+
case 14:
398+
m_netcvupdate_enable_debug = true;
399+
break;
388400
default:
389401
dsyslog ("MCli::%s: ?? getopt returned character code 0%o ??\n", __FUNCTION__, c);
390402
}

0 commit comments

Comments
 (0)