mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2026-01-13 16:15:51 +01:00
2017-03-29 Fred Gleason <fredg@paravelsystems.com>
* Added a 'CUTS.SHA1_HASH' field to the database. * Incremented the database version to 261. * Added a 'Sha1' column to the Cut List in 'rdlibrary/audio_cart.cpp'. * Added 'RDCut::sha1Hash()' and 'RDCut::setSha1Hash()' methods in 'lib/rdcut.cpp' and 'lib/rdcut.h'. * Added a '--rehash=' directive to rddbcheck(8). * Added a 'Rehash' Web API call. * Added an 'RDRehash' class in 'lib/rdrehash.cpp' and 'lib/rdrehash.h'.
This commit is contained in:
@@ -39,6 +39,7 @@ dist_rdxport_cgi_SOURCES = audioinfo.cpp\
|
||||
import.cpp\
|
||||
logs.cpp\
|
||||
rdxport.cpp rdxport.h\
|
||||
rehash.cpp\
|
||||
schedcodes.cpp\
|
||||
services.cpp\
|
||||
trimaudio.cpp
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <rdsettings.h>
|
||||
#include <rdconf.h>
|
||||
#include <rdgroup.h>
|
||||
#include <rdhash.h>
|
||||
#include <rdlibrary_conf.h>
|
||||
|
||||
#include <rdxport.h>
|
||||
@@ -214,12 +215,15 @@ void Xport::Import()
|
||||
resp_code=400;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
delete conv;
|
||||
delete settings;
|
||||
delete conf;
|
||||
delete cut;
|
||||
delete cart;
|
||||
*/
|
||||
if(resp_code==200) {
|
||||
cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cut->cutName())));
|
||||
printf("Content-type: application/xml\n");
|
||||
printf("Status: %d\n",resp_code);
|
||||
printf("\n");
|
||||
|
||||
@@ -264,6 +264,10 @@ Xport::Xport(QObject *parent)
|
||||
ListServices();
|
||||
break;
|
||||
|
||||
case RDXPORT_COMMAND_REHASH:
|
||||
Rehash();
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Content-type: text/html\n\n");
|
||||
printf("rdxport: missing/invalid command\n");
|
||||
|
||||
@@ -64,6 +64,7 @@ class Xport : public QObject
|
||||
void DeleteLog();
|
||||
void ListLogs();
|
||||
void ListLog();
|
||||
void Rehash();
|
||||
void SaveLog();
|
||||
void ListSchedCodes();
|
||||
void AssignSchedCode();
|
||||
|
||||
65
web/rdxport/rehash.cpp
Normal file
65
web/rdxport/rehash.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
// rehash.cpp
|
||||
//
|
||||
// Rivendell web service portal -- Rehash service
|
||||
//
|
||||
// (C) Copyright 2017 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
// published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public
|
||||
// License along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <rdformpost.h>
|
||||
#include <rdlog_line.h>
|
||||
#include <rdweb.h>
|
||||
#include <rduser.h>
|
||||
#include <rdgroup.h>
|
||||
#include <rdconf.h>
|
||||
#include <rdescape_string.h>
|
||||
#include <rdcart_search_text.h>
|
||||
#include <rdhash.h>
|
||||
|
||||
#include <rdxport.h>
|
||||
|
||||
void Xport::Rehash()
|
||||
{
|
||||
int cart_number;
|
||||
int cut_number;
|
||||
|
||||
//
|
||||
// Verify Post
|
||||
//
|
||||
if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
|
||||
XmlExit("Missing CART_NUMBER",400);
|
||||
}
|
||||
if(!xport_post->getValue("CUT_NUMBER",&cut_number)) {
|
||||
XmlExit("Missing CUT_NUMBER",400);
|
||||
}
|
||||
|
||||
//
|
||||
// Process Request
|
||||
//
|
||||
RDCut *cut=new RDCut(cart_number,cut_number);
|
||||
if(!cut->exists()) {
|
||||
delete cut;
|
||||
XmlExit("No such cut",404);
|
||||
}
|
||||
cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cart_number,cut_number)));
|
||||
delete cut;
|
||||
XmlExit("OK",200);
|
||||
}
|
||||
@@ -50,6 +50,7 @@ install-exec-am:
|
||||
cp listlogs.html $(DESTDIR)@libexecdir@
|
||||
cp listschedcodes.html $(DESTDIR)@libexecdir@
|
||||
cp listservices.html $(DESTDIR)@libexecdir@
|
||||
cp rehash.html $(DESTDIR)@libexecdir@
|
||||
cp removecart.html $(DESTDIR)@libexecdir@
|
||||
cp removecut.html $(DESTDIR)@libexecdir@
|
||||
cp savelog.html $(DESTDIR)@libexecdir@
|
||||
@@ -86,6 +87,7 @@ uninstall-local:
|
||||
rm -f $(DESTDIR)@libexecdir@/listlogs.html
|
||||
rm -f $(DESTDIR)@libexecdir@/listschedcodes.html
|
||||
rm -f $(DESTDIR)@libexecdir@/listservices.html
|
||||
rm -f $(DESTDIR)@libexecdir@/rehash.html
|
||||
rm -f $(DESTDIR)@libexecdir@/removecart.html
|
||||
rm -f $(DESTDIR)@libexecdir@/removecut.html
|
||||
rm -f $(DESTDIR)@libexecdir@/savelog.html
|
||||
@@ -121,6 +123,7 @@ EXTRA_DIST = addcart.html\
|
||||
listlogs.html\
|
||||
listschedcodes.html\
|
||||
listservices.html\
|
||||
rehash.html\
|
||||
removecart.html\
|
||||
removecut.html\
|
||||
savelog.html\
|
||||
|
||||
37
web/tests/rehash.html
Normal file
37
web/tests/rehash.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Rivendell REHASH Service Test Harness</title>
|
||||
<body>
|
||||
<form action="/rd-bin/rdxport.cgi" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="COMMAND" value="32">
|
||||
<table cellpadding="0" cellspacing="2" border="0">
|
||||
<tr>
|
||||
<td align="right">LOGIN NAME:</td>
|
||||
<td><input type="text" name="LOGIN_NAME" size="20" maxlength="255"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">PASSWORD:</td>
|
||||
<td><input type="password" name="PASSWORD" size="20" maxlength="32"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">TICKET:</td>
|
||||
<td><input type="text" name="TICKET" size="40" maxlength="40"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">CART NUMBER:</td>
|
||||
<td><input type="text" name="CART_NUMBER" size="20" maxlength="6"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">CUT NUMBER:</td>
|
||||
<td><input type="text" name="CUT_NUMBER" size="20" maxlength="3"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right"><input type="submit" value="OK"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user